const Koa = require('koa')
const app = new Koa()

const server = async ( ctx, next ) => {
  let result = {
    success: true,
    data: null
  }

  if ( ctx.method === 'GET' ) { 
    if ( ctx.url === '/getString.json' ) {
      result.data = 'this is string data'
    } else if ( ctx.url === '/getNumber.json' ) {
      result.data = 123456
    } else {
      result.success = false
    }
    ctx.body = result
    next && next()
  } else if ( ctx.method === 'POST' ) {
    if ( ctx.url === '/postData.json' ) {
      result.data = 'ok'
    } else {
      result.success = false
    }
    ctx.body = result
    next && next()
  } else {
    ctx.body = 'hello world'
    next && next()
  }
}

app.use(server)

module.exports = app

app.listen(9988, () => {
  console.log('[demo] test-unit is starting at port 9988')
})

// const Koa = require('koa')
// const jsonp = require('koa-jsonp')
// const app = new Koa()

// // 使用中间件
// app.use(jsonp())

// app.use( async ( ctx ) => {
  
//   let returnData = {
//     success: true,
//     data: {
//       text: 'this is a jsonp api',
//       time: new Date().getTime(),
//     }
//   }

//   // 直接输出JSON
//   ctx.body = returnData
// })

// app.listen(9988, () => {
//   console.log('[demo] jsonp is starting at port 9988')
// })

// const fs = require('fs');
// const getSqlContentMap = require('./sql_util/get-sql-content-map');
// const { query } = require('./sql_util/db');


// // 打印脚本执行日志
// const eventLog = function( err , sqlFile, index ) {
//   if( err ) {
//     console.log(`[ERROR] sql脚本文件: ${sqlFile} 第${index + 1}条脚本 执行失败 o(╯□╰)o ！`)
//   } else {
//     console.log(`[SUCCESS] sql脚本文件: ${sqlFile} 第${index + 1}条脚本 执行成功 O(∩_∩)O !`)
//   }
// }

// // 获取所有sql脚本内容
// let sqlContentMap = getSqlContentMap()

// // 执行建表sql脚本
// const createAllTables = async () => {
//   for( let key in sqlContentMap ) {
//     let sqlShell = sqlContentMap[key]
//     let sqlShellList = sqlShell.split(';')

//     for ( let [ i, shell ] of sqlShellList.entries() ) {
//       if ( shell.trim() ) {
//         let result = await query( shell )
//         if ( result.serverStatus * 1 === 2 ) {
//           eventLog( null,  key, i)
//         } else {
//           eventLog( true,  key, i) 
//         }
//       }
//     }
//   }
//   console.log('sql脚本执行结束！')
//   console.log('请按 ctrl + c 键退出！')

// }

// createAllTables()